fix(audit): reference catalogs and pointers are not governance documents (0.1.0-alpha.13) - #43
Conversation
Validation Date Coverage asked every canonical governance file for a `Last validated:` line. Two document kinds were never governance documents: - `docs/patterns/**` — a reference catalog read on demand. lc-classic-starter sat CRITICAL at 22% coverage, and 7 of its 9 governance files were catalog entries. Stamping ~20 of them changes no agent behaviour. - pointer documents — already named by isPointerDocument, which this check did not consult. Both leave the denominator rather than being counted and forgiven, and the exemption is stated in the check detail so a coverage figure that rose stays auditable: "100% ... (excludes 7 reference/pointer docs)". Scoped to this one coverage figure — both kinds remain on the scoring surface for every other check, exactly as the shim exclusion in #41 was scoped to Low-Yield. Two mistakes of mine are worth recording, because both were caught by the harness rather than by me: I also exempted `docs/bootstrap-templates/**`, which the brief never asked for. Anvil's own governance surface is 18 bootstrap templates, all dated, so the exemption emptied its denominator and an empty denominator read as 0% — turning Anvil's own verdict from PASS to CRITICAL. verify:self-audit-proof caught it, one turn after I loosened that proof's PR-churn normalization, which is decent evidence the loosening did not blind it. Templates are now treated as the governance documents they are. The empty-denominator case is guarded separately: when every governance file is exempt there is nothing left to measure, so the check falls back to the full set rather than inventing a 0%. Fleet sweep across 17 repos, before -> after: exactly one verdict moves, lc-classic-starter CRITICAL -> NEEDS WORK. Nothing else shifts. forge stays CRITICAL correctly — after exempting its 3 catalog entries, its two remaining `.devagent` files are ordinary instruction docs that genuinely carry no date. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 7 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (11)
Comment |
Takes #2 and #3 from the brief. #1 and #4 are reported, not built — see below, because #4 turns out to already exist.
What shipped
Validation Date Coverage asked every canonical governance file for a
Last validated:line. Two document kinds were never governance documents:docs/patterns/**— a reference catalog read on demand. lc-classic-starter sat CRITICAL at 22%, and 7 of its 9 governance files were catalog entries.isPointerDocument, which this check did not consult. Confirmed by reading, as asked.Both leave the denominator, and the exemption is stated:
100% ... (excludes 7 reference/pointer docs). Scoped to this one figure — both kinds stay on the scoring surface for every other check, exactly as #41's shim exclusion was scoped to Low-Yield.Fleet sweep, 17 repos
Exactly one verdict moves: lc-classic-starter CRITICAL → NEEDS WORK. forge stays CRITICAL correctly — after exempting its 3 catalog entries, its two remaining
.devagentfiles are ordinary instruction docs that genuinely carry no date.Two mistakes, both caught by the harness
I also exempted
docs/bootstrap-templates/**, which the brief never asked for. Anvil's own governance surface is 18 bootstrap templates, all dated — so the exemption emptied its denominator, and an empty denominator read as 0%, turning Anvil's own verdict PASS → CRITICAL.verify:self-audit-proofcaught it, one turn after I loosened that proof's PR-churn normalization, which is decent evidence the loosening didn't blind it.The empty-denominator case is now guarded separately: when everything is exempt there is nothing to measure, so it falls back to the full set rather than inventing a 0%.
Verify
lint · format:check · release:pin --check · typecheck · 507 pass / 0 fail · verify:self-audit-proof — all green.
🤖 Generated with Claude Code